1. Technical Field
The present invention relates in general to the computer programming. More specifically, the present invention relates to the collection of system data in a computer system.
2. Background Art
The development of the EDVAC computer system of 1948 is often cited as the beginning of the computer era. Since that time computers have become indispensable in many fields of human endeavor including engineering design, machine and process control, and information storage and access. In the early days of computers, companies such as banks, industry, and the government would purchase a single computer which satisfied their needs, but by the early 1950""s many companies had multiple computers and the need to move data from one computer to another became apparent. At this time computer networks began being developed to allow computers to work together.
Computer networks are capable of performing jobs that no single computer could perform and they allow low cost personal computer systems to connect to larger systems to perform tasks that such low cost systems could not perform alone. In order for computer systems to cooperate in a network to perform some complex job, software must be developed which efficiently delegates parts of the chore or tasks to different computers in the network. One of the recent advances in the field of software development has been the emergence of object oriented programming technology.
The goal of using object-oriented programming is to create small, reusable sections of program code known as objects that can be quickly and easily combined and re-used to create new programs. This is similar to the idea of using the same set of building blocks again and again to create many different structures. The modular and re-usable aspects of objects typically speeds development of new programs, thereby reducing the costs associated with the development cycle. In addition, by creating and re-using a group of well-tested objects, a more stable, uniform, and consistent approach to developing computer programs can be achieved.
Although object-oriented programming offers significant improvements over other programming types, program development still requires significant amounts of time and effort, especially if no preexisting objects are available as a starting point. Consequently, one approach has been to provide a program developer with a set of pre-defined, interconnected classes that facilitate the creation of a set of objects. Such pre-defined classes and libraries are typically called object frameworks. Frameworks essentially provide a prefabricated structure for a working program by defining certain classes, class relationships, and methods that a programmer may easily use by appropriate subclassing to generate a new object-oriented program.
While object-oriented programming and the use of frameworks has greatly simplified the task of creating useful and efficient computer programs, some difficulties remain. For example, many advanced computers and operating systems need to collect system data in order to track things such as performance, system utilization, system resources, etc. Previous collectors have been limited to collecting data only when specially requested to do so. Additionally, previous data collectors have used seperate programs for each distinct type of data collected. Multiple distinct collectors present the problem of multiple programs with dissimilar interfaces and data storage mechanisms. This makes it difficult to extend these programs when additional data types need to be added to those being collected. Additionally, because individual data collection programs have typically used different data storage techniques, and require different procedures for accessing the stored data, it can also be difficult to write tools that analyze the information contained by the multiple data types.
Thus, what is needed is an improved mechanism and method for collecting system data that provides increased flexibility for collecting different types of system data and a more consistent interface for facilitating system data analysis.
According to the present invention, a component based system data collection mechanism provides a solution that can be easily extended to collect different data types. The preferred embodiment provides a collection repository that stores different collected data types with a single consistent interface for accessing the collected data. The preferred embodiment is a data collector implemented from an object-oriented framework. The object-oriented data collector can be easily extended by adding additional instances of the data collector from the framework. The preferred embodiment framework includes mechanisms for global customization of the collector and synchronization of the collection. The preferred embodiment also includes base probe classes that define the probes that perform the actual collection of the system data and store the data in a common collection repository. Subclasses are provided to implement the collection of different types of system data. Thus, the preferred embodiment provides an extensible and flexible solution to the problem of collecting and analyzing different types of system data.
The foregoing and other features and advantages of the present invention will be apparent from the following more particular description of the preferred embodiment of the invention, as illustrated in the accompanying drawings.